#!/usr/bin/env python
# -*- coding:utf-8 -*-
import datetime
from django.db.models.query import QuerySet, RawQuerySet

"""
把django的orm对象转化成json的工具包
"""


def object_to_json(model, ignore=None):
    """
    把特定模型的对象转化成json类型
    1.不能转含有图片类型的数据，具有局限性
    :param model: 模型查询对象
    :param ignore:
    :return:
    """
    if ignore is None:
        ignore = []
    if type(model) in [QuerySet, RawQuerySet, list]:
        json = []
        for element in model:
            json.append(_django_single_object_to_json(element, ignore))
        return json
    else:
        return _django_single_object_to_json(model, ignore)


def _django_single_object_to_json(element, ignore=None):
    """
    Model._meta.fields 获取模型的属性字段
    下面一段代码是把一个django的Model对象转化成字段返回
    :param element:
    :param ignore:
    :return:
    """
    return dict([(attr, getattr(element, attr)) for attr in [f.name for f in element._meta.fields if f not in ignore]])
